package com.atguigu.servlet;

import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

/**
 * 请求转发的概念：服务器端处理请求时，第一个资源处理请求之后，转交给第二个资源继续处理，最终由第二个资源给前端返回响应
 * 请求转发的特点：
 *      1、整个过程中，浏览器只发送了一个请求
 *      2、浏览器地址栏不变
 *      3、浏览器感知不到请求被转发
 *      4、请求转发的目标资源必须是当前 Web 应用内部的资源
 *      5、请求转发的目标资源可以是 WEB-INF 目录下的资源
 */
@WebServlet(urlPatterns = "/Servlet13RequestDispatcher")
public class Servlet13RequestDispatcher extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 目标：把请求转发到 /pages/target.html
        // 1、获取转发器对象
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/pages/target.html");

        // 2、执行转发
        requestDispatcher.forward(request, response);
    }
}
